package string

// 实现一个函数，把字符串中的每个空格替换成"%20"
// We are happy.  输出 We%20are%20happy.

// 解法一：时间复杂度on

func StrReplace(a []byte, length int) []byte {
	if len(a) == 0 {
		return a
	}
	countBlank := 0
	for i := 0; i < length; i++ {
		if a[i] == byte(' ') {
			countBlank++
		}
	}
	var newLength = length + countBlank*2
	if newLength > len(a) {
		return a
	}
	var p1 = length
	var p2 = newLength // p2 指向原字符串长度+空格替换新增长度的最后一个位置
	for p1 >= 0 && p2 >= p1 {
		if a[p1] == byte(' ') {
			a[p2] = byte('0')
			p2--
			a[p2] = byte('2')
			p2--
			a[p2] = byte('%')
			p2--
		} else {
			a[p2] = a[p1]
			p2--
		}
		p1--
	}
	return a
}
